<div class="refentry"><a id="glQueryCounter"></a><div class="titlepage"></div><div class="refnamediv"><h2>Name</h2><p>glQueryCounter — record the GL time into a query object after all previous commands have reached the GL server but have not yet necessarily executed.</p></div><div class="refsynopsisdiv"><h2>C Specification</h2><div class="funcsynopsis"><table class="funcprototype-table" style="cellspacing: 0; cellpadding: 0;"><tr><td><code class="funcdef">void <strong class="fsfunc">glQueryCounter</strong>(</code></td><td>GLuint <var class="pdparam">id</var>, </td></tr><tr><td> </td><td>GLenum <var class="pdparam">target</var><code>)</code>;</td></tr></table><div class="funcprototype-spacer"> </div></div></div><div class="refsect1"><a id="parameters"></a><h2>Parameters</h2><div class="variablelist"><dl class="variablelist"><dt><span class="term"><em class="parameter"><code>id</code></em></span></dt><dd><p>
                    Specify the name of a query object into which to record the GL time.
                </p></dd><dt><span class="term"><em class="parameter"><code>target</code></em></span></dt><dd><p>
                    Specify the counter to query. <em class="parameter"><code>target</code></em> must be <code class="constant">GL_TIMESTAMP</code>.
                </p></dd></dl></div></div><div class="refsect1"><a id="description"></a><h2>Description</h2><p>
            <code class="function">glQueryCounter</code> causes the GL to record the current time into the query object named <em class="parameter"><code>id</code></em>.
            <em class="parameter"><code>target</code></em> must be <code class="constant">GL_TIMESTAMP</code>. The time is recorded after all previous commands on the
            GL client and server state and the framebuffer have been fully realized. When the time is recorded, the query result for that object
            is marked available. <code class="function">glQueryCounter</code> timer queries can be used within a <a class="citerefentry" href="glBeginQuery"><span class="citerefentry"><span class="refentrytitle">glBeginQuery</span></span></a> /
            <a class="citerefentry" href="glEndQuery"><span class="citerefentry"><span class="refentrytitle">glEndQuery</span></span></a> block where the target is <code class="constant">GL_TIME_ELAPSED</code> and it does
            not affect the result of that query object.
        </p></div><div class="refsect1"><a id="notes"></a><h2>Notes</h2><p>
            <code class="function">glQueryCounter</code> is available only if the GL version is 3.3 or higher.
        </p></div><div class="refsect1"><a id="errors"></a><h2>Errors</h2><p>
            <code class="constant">GL_INVALID_OPERATION</code> is generated if <em class="parameter"><code>id</code></em> is the name
            of a query object that is already in use within a <a class="citerefentry" href="glBeginQuery"><span class="citerefentry"><span class="refentrytitle">glBeginQuery</span></span></a> /
            <a class="citerefentry" href="glEndQuery"><span class="citerefentry"><span class="refentrytitle">glEndQuery</span></span></a> block.
        </p><p>
            <code class="constant">GL_INVALID_VALUE</code> is generated if <em class="parameter"><code>id</code></em> is not the name of a query object returned
            from a previous call to <a class="citerefentry" href="glGenQueries"><span class="citerefentry"><span class="refentrytitle">glGenQueries</span></span></a>.
        </p><p>
            <code class="constant">GL_INVALID_ENUM</code> is generated if <em class="parameter"><code>target</code></em> is not <code class="constant">GL_TIMESTAMP</code>.
        </p></div>
        {$pipelinestall}{$examples}
        <div class="refsect1"><a id="seealso"></a><h2>See Also</h2><p>
            <a class="citerefentry" href="glGenQueries"><span class="citerefentry"><span class="refentrytitle">glGenQueries</span></span></a>,
            <a class="citerefentry" href="glBeginQuery"><span class="citerefentry"><span class="refentrytitle">glBeginQuery</span></span></a>,
            <a class="citerefentry" href="glEndQuery"><span class="citerefentry"><span class="refentrytitle">glEndQuery</span></span></a>,
            <a class="citerefentry" href="glDeleteQueries"><span class="citerefentry"><span class="refentrytitle">glDeleteQueries</span></span></a>,
            <a class="citerefentry" href="glGetQueryObject"><span class="citerefentry"><span class="refentrytitle">glGetQueryObject</span></span></a>,
            <a class="citerefentry" href="glGetQueryiv"><span class="citerefentry"><span class="refentrytitle">glGetQueryiv</span></span></a>,
            <a class="citerefentry" href="glGet"><span class="citerefentry"><span class="refentrytitle">glGet</span></span></a>
        </p></div><div class="refsect1"><div id="Copyright"><h2>Copyright</h2><p>
            Copyright © 2010 Khronos Group.
            This material may be distributed subject to the terms and conditions set forth in
            the Open Publication License, v 1.0, 8 June 1999.
            <a class="ulink" href="https://opencontent.org/openpub/" target="_top">https://opencontent.org/openpub/</a>.
        </p></div></div></div>
